import Vue from "vue";
// 引入 Vuex
import Vuex from "vuex";

// 注册 Vuex 插件
Vue.use(Vuex);

// 实例化 Vuex.Store 仓库
const store = new Vuex.Store({
  // 配置项
  state: {
    a: 10,
    b: 20,
  },

  mutations: {
    changeA(state, payload) {
      state.a = payload;
    },

    changeB(state, payload) {
      state.b = payload;
    },

    changeAB(state, payload) {
      // 组件中提交这个 mutation this.$store.commit('changeAB', { a: 11, b: 22 })
      // !!! commit 只认两个参数，所以如果payload想要接收多个东西时，可以传递为对象
      state.a = payload.a;
      state.b = payload.b;
    },
  },
});

// 默认暴露
export default store;
